﻿using UnityEngine;
public static partial class Utility
{
    /// <summary>
    /// 颜色工具库
    /// </summary>
    public static class Color
    {
        /// <summary>
        /// color 转换hexa
        /// </summary>
        /// <param name="color"></param>
        /// <returns></returns>
        public static string ColorToHex(UnityEngine.Color color)
        {
            int r = Mathf.RoundToInt(color.r * 255.0f);
            int g = Mathf.RoundToInt(color.g * 255.0f);
            int b = Mathf.RoundToInt(color.b * 255.0f);
            int a = Mathf.RoundToInt(color.a * 255.0f);
            string hex = string.Format("{0:X2}{1:X2}{2:X2}{3:X2}", r, g, b, a);
            return hex;
        }


        /// <summary>
        /// hexa转换到color
        /// </summary>
        /// <param name="hex"></param>
        /// <returns></returns>
        public static UnityEngine.Color HexToColor(string hex)
        {
			hex = hex.Replace("#", "");
            byte br = byte.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
            byte bg = byte.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.HexNumber);
            byte bb = byte.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.HexNumber);
            float r = br / 255f;
            float g = bg / 255f;
            float b = bb / 255f;
            float a = 1f;
			if (hex.Length == 8) {
				byte cc = byte.Parse(hex.Substring(6, 2), System.Globalization.NumberStyles.HexNumber);
                a = cc / 255f;
            }
            return new UnityEngine.Color(r, g, b, a);
        }
    }
}
